The present application relates generally to an improved data processing apparatus and method and more specifically to mechanisms for performance tuning for software as a performance level service.
Cloud providers sell software-as-a-service (Saas) and platform-as-a-service (PaaS) products to customers who wish to license an application for use as a service on demand, either through a time subscription or a “pay-as-you-go” model. The SaaS or PaaS model allows vendors to develop, host, and operate software and hardware for customer use. Rather than purchase the hardware and software to run an application, customers need agree to terms with the provider, and users may access the software or hardware using any client, such as a desktop computer or notebook, for example. The customer may license software for a single user or for a group of users.
SaaS software vendors may host the application on their own Web servers, disabling it after use or after the on-demand contract expires. While SaaS was widely deployed initially for sales force automation and Customer Relationship Management (CRM), its use has become commonplace by businesses for tasks such as computerized billing, invoicing, human resource management, service desk management, and sales pipeline management, among others.
PaaS offerings facilitate deployment of applications without the cost and complexity of buying and managing the underlying hardware and software and provisioning hosting capabilities, providing all of the facilities required to support the complete life cycle of building and delivering web applications and services entirely available from the Internet. PaaS offerings may include facilities for application design, application development, testing, deployment, and hosting as well as application services such as team collaboration, web service integration and marshalling, database integration, security, scalability, storage, persistence, state management, application versioning, application instrumentation and developer community facilitation. These services may be provisioned as an integrated solution over the web.
A service level agreement (SLA) is a negotiated agreement between two parties where one is the customer and the other is the service provider. This can be a legally binding formal or informal contract. The SLA records a common understanding about services, priorities, responsibilities, guarantees, and warranties. The SLA may specify the levels of availability, serviceability, performance, operation, or other attributes of the service, such as billing. The level of service can also be specified as “target” and “minimum,” which allows customers to be informed what to expect, while providing a measurable target value that shows the level of organization performance. Thus, customers may enter into a contract with a cloud provider for a specified performance level for a SaaS or PaaS product.
Therefore, a customer may need a CRM application with 40 seats for a 40-person sales team. The agreement may define an approximate level of performance. However, in a virtual environment with partition mobility, performance may fluctuate as an operating system and service is moved from processor to processor. Furthermore, the required performance level may be difficult to determine at the time of entering a performance-based agreement. A customer may underestimate the required performance or may outgrow an initial estimation.